1
За пределами простого соответствия
AI034Lesson 18
00:00

В языке Rust сопоставление шаблонов — это не просто ветвь управления потоком выполнения, а сама архитектура привязки. Каждый раз, когда вы объявляете переменную или определяете функцию, вы занимаетесь сопоставлением шаблонов.

1. Идентичность привязки

Когда мы пишем let x = 5;, мы не просто присваиваем значение. Мы сопоставляем значение 5 с непротиворечивым шаблономx. Поскольку x — это имя, которое может представлять любое значение, сопоставление всегда удаётся и создаёт локальную привязку.

2. Параметры с шаблонами (Пример 18-6)

Возможно, наиболее глубокое понимание заключается в том, что подписи функций являются шаблонами. В сигнатуре fn foo(x: i32), код ожидает i32 и использует шаблон x для привязки входящего аргумента. Это означает, что каждый вход в функцию по сути является событием сопоставления с одним вариантом.

let x = 5;Локальная привязкаfn foo(x: i32)Параметр функцииОДНА И ТА ЖЕ ЛОГИКАШаблон: Привязывает аргумент к 'x'

3. Всепроникающая природа шаблонов

Шаблоны распространяются дальше чем match. Они появляются в for циклах (разборе кортежей), while let условных выражениях, а также в if let выражениях. Эта Локальная привязка принцип гарантирует, что код на Rust остаётся последовательно выразительным, независимо от того, извлекаете ли вы данные из структуры или перебираете хеш-карту.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>